<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
	<th:block th:include="include :: header('任务列表')" />
	<th:block th:include="include :: layout-latest-css" />
	<th:block th:include="include :: ztree-css" />
</head>
<body class="gray-bg">
	<div class="ui-layout-center">
		<div class="container-div">
			<div class="row">
				<div class="col-sm-12 search-collapse">
					<form id="user-form">
						<input type="hidden" id="withCreatedBy" name="withCreatedBy" value="true">
		                <input type="hidden" id="withCreatedAt" name="withCreatedAt" value="true">
						<div class="select-list">
							<ul>
								<li>
									编号：<input type="text" name="id"/>
								</li>
								<li>
									uuid：<input type="text" name="uuid"/>
								</li>
								<li>
									任务名：<input type="text" name="nameLike" title="左前匹配"/>
								</li>
								<li>
									类型：<select name="type">
										<option value="">所有</option>
										<option th:text="Delay" th:value="Delay"></option>
										<option th:text="Schedule" th:value="Schedule"></option>
									</select>
								</li>
<!-- 								<li> -->
<!-- 									并行：<select name="parallel"> -->
<!-- 										<option value="">所有</option> -->
<!-- 										<option th:text="是" th:value="true"></option> -->
<!-- 										<option th:text="否" th:value="false"></option> -->
<!-- 									</select> -->
<!-- 								</li> -->
<!-- 								<li> -->
<!-- 									最后一次执行成功：<select name="lastExecuteSuccess"> -->
<!-- 										<option value="">所有</option> -->
<!-- 										<option th:text="是" th:value="true"></option> -->
<!-- 										<option th:text="否" th:value="false"></option> -->
<!-- 									</select> -->
<!-- 								</li> -->
								<li>
									队列中：<select name="queued">
										<option value="">所有</option>
										<option th:text="是" th:value="true"></option>
										<option th:text="否" th:value="false"></option>
									</select>
								</li>
								<li>
									已结束：<select name="end">
										<option value="">所有</option>
										<option th:text="是" th:value="true"></option>
										<option th:text="否" th:value="false"></option>
									</select>
								</li>
<!-- 								<li class="select-time"> -->
<!-- 									<label>创建时间： </label> -->
<!-- 									<input type="text" class="form-control" id="laydate-demo-3" name="createdAtGte" placeholder="开始时间"> -->
<!-- 									<span>-</span> -->
<!-- 									<input type="text" class="form-control" id="laydate-demo-3-2" name="createdAtLte" placeholder="结束时间"> -->
<!-- 								</li> -->
<!-- 								<li class="select-time"> -->
<!-- 									<label>最后触发时间： </label> -->
<!-- 									<input type="text" class="form-control" id="laydate-demo-3-3" name="lastTrigAtGte" placeholder="开始时间"> -->
<!-- 									<span>-</span> -->
<!-- 									<input type="text" class="form-control" id="laydate-demo-3-4" name="lastTrigAtLte" placeholder="结束时间"> -->
<!-- 								</li> -->
								<li>
									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
								    <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
								</li>
							</ul>
						</div>
					</form>
				</div>
				
		        <div class="btn-group-sm" id="toolbar" role="group">
		        	<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
		                <i class="fa fa-plus"></i> 新增
		            </a>
<!-- 		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit"> -->
<!-- 			            <i class="fa fa-edit"></i> 修改 -->
<!-- 			        </a> -->
<!-- 		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove"> -->
<!-- 		                <i class="fa fa-remove"></i> 删除 -->
<!-- 		            </a> -->
		        </div>
		        
		        <div class="col-sm-12 select-table table-striped">
				    <table id="bootstrap-table"></table>
				</div>
			</div>
		</div>
	</div>
	
	<th:block th:include="include :: footer" />
	<th:block th:include="include :: layout-latest-js" />
	<th:block th:include="include :: ztree-js" />
	<script th:inline="javascript">
		var editFlag = true;
		var removeFlag = true;
		var resetPwdFlag = true;
		var prefix = ctx + "api/job";

		$(function() {
		    var panehHidden = false;
		    if ($(this).width() < 769) {
		        panehHidden = true;
		    }
		    $('body').layout({ initClosed: panehHidden, west__size: 185 });
	     	// 回到顶部绑定
	    	if ($.fn.toTop !== undefined) {
	    		var opt = {
	    			win:$('.ui-layout-center'),
	    			doc:$('.ui-layout-center')
	    		};
	    		$('#scroll-up').toTop(opt);
	    	}
		    queryUserList();
// 		    queryDeptTree();
		});

		function queryUserList() {
		    var options = {
		        url: prefix + "/list",
		        detailUrl: "/view/job/{id}/detail",
		        createUrl: "/view/job/create",
		        updateUrl: "/view/job/{id}/update",
		        removeUrl: prefix + "/remove",
		        exportUrl: prefix + "/export",
		        importUrl: prefix + "/importData",
		        importTemplateUrl: prefix + "/importTemplate",
		        sortName: "createTime",
		        sortOrder: "desc",
		        modalName: "任务",
		        columns: [{
		            checkbox: false
		        },
		        {
		        	visible: true,
		            field: 'id',
		            title: '编号'
		        },
		        {
		            field: 'uuid',
		            title: 'uuid'		            
		        },
		        {
		            field: 'name',
		            title: '任务名'
		        },
		        {
		            field: 'type',
		            title: '类型'		            
		        },
// 		        {
// 		            field: 'executorName',
// 		            title: 'Executor'		            
// 		        },
// 		        {
// 		            field: 'jobHandlerName',
// 		            title: 'Handler'		            
// 		        },
// 		        {
// 		            field: 'executeTimeout',
// 		            title: '执行超时时间ms'		            
// 		        },
		        {
		            field: 'priority',
		            title: '优先级'		            
		        },
		        {
		            field: 'weight',
		            title: '重量'		            
		        },
		        {
		        	title: '并行',
		        	align: 'center',
		        	formatter: function (value, row, index) {
		        		return row.parallel ? '是':'否';
		        	}
		        },
		        {
		        	title: '队列中',
		        	align: 'center',
		        	formatter: function (value, row, index) {
		        		if(row.end && row.lastExecuteSuccess){
		        			return '否';
		        		}
		        		return row.queued ? '<span style="color:green;">是</span>':'<span style="color:red;">否</span>';
		        		
		        	}
		        },
		        {
		        	title: '已结束',
		        	align: 'center',
		        	formatter: function (value, row, index) {
		        		return row.end ? '是':'否';
		        	}
		        },
		        {
		        	title: '最后一次执行成功',
		        	align: 'center',
		        	formatter: function (value, row, index) {
		        		if(row.lastExecuteSuccess == null){
		        			return '-';
		        		}
		        		return row.lastExecuteSuccess ? '<span style="color:green;">是</span>':'<span style="color:red;">否</span>';
		        	}
		        },
		        {
		            field: 'lastTrigAt',
		            title: '最后触发时间'		            
		        },
		        {
		            field: 'nextTrigAt',
		            title: '下次触发时间'		            
		        },
		        {
		            field: 'createdBy',
		            title: '创建者'		            
		        },
		        {
		            field: 'createdAt',
		            title: '创建时间'		            
		        },
		        {
		            title: '操作',
		            align: 'center',
		            formatter: function(value, row, index) {
// 		                if (row.userId != 1) {
// 		                	var actions = [];
// 			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.userId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
// 			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.userId + '\')"><i class="fa fa-remove"></i>删除</a> ');
// 			                var more = [];
// 			                more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
// 			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
// 			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');
// 			                return actions.join('');
// 		            	} else {
// 		                    return "";
// 		                }

		            	var actions = [];
		                actions.push('<a class="btn btn-info btn-xs" href="#" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-search"></i>明细</a> ');
		                actions.push('<a class="btn btn-info btn-xs" href="#" onclick="$.modal.openTab(\'任务执行记录列表\',\'/view/jobExecuteRecord/list?jobId=' + row.id + '\')"><i class="fa fa-search"></i>任务执行记录</a> ');
		                actions.push('<a class="btn btn-info btn-xs" href="#" onclick="$.modal.openTab(\'任务恢复记录列表\',\'/view/jobRecoveryRecord/list?jobId=' + row.id + '\')"><i class="fa fa-search"></i>任务恢复明细</a> ');
		                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
		                actions.push('<a class="btn btn-success btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
// 		                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
// 		                actions.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.id + ")'><i class='fa fa-key'></i>修改密码</a> ");
// 		                var more = [];
// 		                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');
		                return actions.join('');
		            }
		        }
		        ]
		    };
		    $.table.init(options);
		}
		
		function remove(id) {
			$.modal.confirm("确认要删除吗？", function() {
// 				$.operate.post(prefix + "/"+id+"/disable", { "userId": userId, "status": 1 });
				$.operate.post(prefix + "/"+id+"/delete", {});
		    })
		}
		
		$('#btnExpand').click(function() {
			$._tree.expandAll(true);
		    $(this).hide();
		    $('#btnCollapse').show();
		});
		
		$('#btnCollapse').click(function() {
			$._tree.expandAll(false);
		    $(this).hide();
		    $('#btnExpand').show();
		});
		
		$('#btnRefresh').click(function() {
			queryDeptTree();
		});
	</script>
	
	<th:block th:include="include :: datetimepicker-js" />
    <script type="text/javascript">
        $(function(){
        	<!-- datetimepicker示例 -->
        	$("#datetimepicker-demo-1").datetimepicker();
        	
        	$("#datetimepicker-demo-2").datetimepicker({
       		    format: "yyyy-mm-dd",
       		    minView: "month",
       		    autoclose: true
       		});
        	
        	$("#datetimepicker-demo-3").datetimepicker({
       		    format: "yyyy-mm-dd hh:ii:ss",
       		    autoclose: true
       		});
        	
        	$('.form_date').datetimepicker({
        		format: "yyyy-mm-dd",
       		    minView: "month",
       		    autoclose: true
            });
        	
        	$("#datetimepicker-startTime").datetimepicker({
        		format: 'yyyy-mm-dd',
        		minView: "month",
        	    todayBtn:  true,
        	    autoclose: true,
        		endDate : new Date(),
        	}).on('changeDate', function(event) {
        		event.preventDefault();
        		event.stopPropagation();
        		var startTime = event.date;
        		$('#datetimepicker-endTime').datetimepicker('setStartDate', startTime);
        	});
        	
        	$("#datetimepicker-endTime").datetimepicker({
        		format: 'yyyy-mm-dd',
        		minView: "month",
        		todayBtn:  true,
        		autoclose: true,
        		endDate : new Date(),
        	}).on('changeDate', function(event) {
        		event.preventDefault();
        		event.stopPropagation();
        		var endTime = event.date;
        		$("#datetimepicker-startTime").datetimepicker('setEndDate', endTime);
        	});
        	
        	<!-- laydate示例 -->
        	layui.use('laydate', function(){
       		  var laydate = layui.laydate;
       		  
       		  laydate.render({
       		    elem: '#laydate-demo-1'
       		  });
       		  
       		  laydate.render({ 
       		    elem: '#laydate-demo-2',
       		    type: 'date'
       		  });
       		  
       		  laydate.render({ 
       		    elem: '#laydate-demo-3',
       		    type: 'datetime',
       		    trigger: 'click'
       		  });
       		  
       		  laydate.render({ 
       		    elem: '#laydate-demo-3-2',
       		    type: 'datetime',
       		    trigger: 'click'
       		  });
       		  
       	      laydate.render({ 
       		    elem: '#laydate-demo-3-3',
       		    type: 'datetime',
       		    trigger: 'click'
       		  });
       		
       		  laydate.render({ 
       		    elem: '#laydate-demo-3-4',
       		    type: 'datetime',
       		    trigger: 'click'
       		  });
       		  
       		  laydate.render({
       		    elem: '#laydate-demo-4',
       		    range: true
       		  });
       		  
       		  var startDate = laydate.render({
		        elem: '#laydate-startTime',
		        max: $('#laydate-endTime').val(),
		        theme: 'molv',
		        trigger: 'click',
		        done: function(value, date) {
		            // 结束时间大于开始时间
		            if (value !== '') {
		                endDate.config.min.year = date.year;
		                endDate.config.min.month = date.month - 1;
		                endDate.config.min.date = date.date;
		            } else {
		                endDate.config.min.year = '';
		                endDate.config.min.month = '';
		                endDate.config.min.date = '';
		            }
		        }
		      });
       		
		      var endDate = laydate.render({
		        elem: '#laydate-endTime',
		        min: $('#laydate-startTime').val(),
		        theme: 'molv',
		        trigger: 'click',
		        done: function(value, date) {
		            // 开始时间小于结束时间
		            if (value !== '') {
		                startDate.config.max.year = date.year;
		                startDate.config.max.month = date.month - 1;
		                startDate.config.max.date = date.date;
		            } else {
		                startDate.config.max.year = '';
		                startDate.config.max.month = '';
		                startDate.config.max.date = '';
		            }
		        }
		      });
       	   });
        });
    </script>
</body>
<!-- 导入区域 -->
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
	<div class="col-xs-offset-1">
		<input type="file" id="file" name="file"/>
		<div class="mt10 pt5">
			<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在，更新这条数据。"> 是否更新已经存在的用户数据
			 &nbsp;	<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
		</div>
		<font color="red" class="pull-left mt10">
			提示：仅允许导入“xls”或“xlsx”格式文件！
		</font>
	</div>
</form>
</script>
</html>